package com.twelvet.framework.utils.file;

import com.twelvet.framework.utils.exception.TWTUtilsException;
import org.apache.commons.lang3.StringUtils;

import java.io.File;

/**
 * @author twelvet
 * @WebSite twelvet.cn
 * @Description: 文件类型工具类
 */
public class FileTypeUtils {

	public FileTypeUtils() {
		throw new TWTUtilsException("This is a utility class and cannot be instantiated");
	}

	/**
	 * 获取文件类型
	 * <p>
	 * 例如: twelvet.txt, 返回: txt
	 * @param file 文件名
	 * @return 后缀（不含".")
	 */
	public static String getFileType(File file) {
		if (null == file) {
			return StringUtils.EMPTY;
		}
		return getFileType(file.getName());
	}

	/**
	 * 获取文件类型
	 * <p>
	 * 例如: twelvet.txt, 返回: txt
	 * @param fileName 文件名
	 * @return 后缀（不含".")
	 */
	public static String getFileType(String fileName) {
		int separatorIndex = fileName.lastIndexOf(".");
		if (separatorIndex < 0) {
			return "";
		}
		return fileName.substring(separatorIndex + 1).toLowerCase();
	}

	/**
	 * 获取文件类型
	 * @param photoByte 文件字节码
	 * @return 后缀（不含".")
	 */
	public static String getFileExtendName(byte[] photoByte) {
		String strFileExtendName = "JPG";
		if ((photoByte[0] == 71) && (photoByte[1] == 73) && (photoByte[2] == 70) && (photoByte[3] == 56)
				&& ((photoByte[4] == 55) || (photoByte[4] == 57)) && (photoByte[5] == 97)) {
			strFileExtendName = "GIF";
		}
		else if ((photoByte[6] == 74) && (photoByte[7] == 70) && (photoByte[8] == 73) && (photoByte[9] == 70)) {
			strFileExtendName = "JPG";
		}
		else if ((photoByte[0] == 66) && (photoByte[1] == 77)) {
			strFileExtendName = "BMP";
		}
		else if ((photoByte[1] == 80) && (photoByte[2] == 78) && (photoByte[3] == 71)) {
			strFileExtendName = "PNG";
		}
		return strFileExtendName;
	}

}
